package vista.ventanas;

import java.awt.Window;
import java.awt.event.MouseListener;
import java.util.List;

import logica.Atributo;

import vista.paneles.NoEsNodoPadre;
import vista.paneles.PanelAtributo;

@SuppressWarnings("serial")
public abstract class SubVentanaConPanelAtributos extends SubVentana {

	private PanelAtributo panelAtributos;

	public SubVentanaConPanelAtributos(Window ventanaPadre, String titulo, int altoVentana) 
	{
		super(ventanaPadre, titulo, altoVentana);
	}
	
	public void escucharEventoNuevoAtributo(MouseListener controlador)
	{
		this.panelAtributos.escucharEventosBotonNuevo(controlador);
	}
	
	public void escucharEventoEliminarAtributo(MouseListener controlador)
	{
		this.panelAtributos.escucharEventosBotonEliminar(controlador);
	}
	
	public void escucharEventoEditarAtributo(MouseListener controlador)
	{
		this.panelAtributos.escucharEventosBotonEditar(controlador);
	}
	
	public void agregarAtributo(Atributo atributo)
	{
		this.panelAtributos.agregarAtributo(atributo);
	}
	
	public void editarAtributo(Atributo atributoEditado)
	{
		this.panelAtributos.editarAtributo(atributoEditado);
	}
	
	public void quitarAtributo() throws NoEsNodoPadre
	{
		this.panelAtributos.quitarAtributo();
	}
	
	public List<Atributo> getAtributos()
	{
		return this.panelAtributos.getAtributos();
	}	
	
	public Atributo getAtributoSeleccionado(){
		return this.panelAtributos.getSeleccion();
	}
	
	protected PanelAtributo getPanelAtributo()
	{//tema de subventana y panel Informacion, se inializa antes q cualquier atributo de la clase;
		if (this.panelAtributos == null)
			this.panelAtributos = new PanelAtributo("Atributos");
		
		return this.panelAtributos;	
	}
}
